import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

// 解决导航栏或者底部导航tabBar中的vue-router在3.0版本以上频繁点击菜单报错的问题。
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push (location) {
  return originalPush.call(this, location).catch(err => err)
}

const routes = [
  {
    path: '/',
    name: 'Manager',
    component: () => import('../views/Manager.vue'),
    redirect: '/home',  // 重定向到主页
    children: [
      { path: '403', name: 'NoAuth', meta: { name: '无权限' }, component: () => import('../views/manager/403') },
      { path: 'home', name: 'Home', meta: { name: '系统首页' }, component: () => import('../views/manager/Home') },
      { path: 'admin', name: 'Admin', meta: { name: '管理员信息' }, component: () => import('../views/manager/Admin') },
      { path: 'adminPerson', name: 'AdminPerson', meta: { name: '个人信息' }, component: () => import('../views/manager/AdminPerson') },
      { path: 'employeePerson', name: 'EmployeePerson', meta: { name: '员工个人信息' }, component: () => import('../views/manager/EmployeePerson') },
      { path: 'password', name: 'Password', meta: { name: '修改密码' }, component: () => import('../views/manager/Password') },
      { path: 'notice', name: 'Notice', meta: { name: '公告信息' }, component: () => import('../views/manager/Notice') },
      { path: 'employee', name: 'Employee', meta: { name: '员工管理' }, component: () => import('../views/manager/Employee') },
      { path: 'expenses', name: 'Expenses', meta: { name: '填写报销单' }, component: () => import('../views/manager/Expenses') },
      { path: 'expensesPerson', name: 'ExpensesPerson', meta: { name: '我的报销单' }, component: () => import('../views/manager/ExpensesPerson') },
      { path: 'handleExpenses', name: 'HandleExpenses', meta: { name: '待处理报销单' }, component: () => import('../views/manager/HandleExpenses') },
      { path: 'loan', name: 'Loan', meta: { name: '财务审核' }, component: () => import('../views/manager/Loan') },
      { path: 'department', name: 'Department', meta: { name: '部门管理' }, component: () => import('../views/manager/Department') },
      { path: 'expensesInfo', name: 'ExpenseInfo', meta: { name: '报销单信息' }, component: () => import('../views/manager/ExpenseInfo') },
      { path: 'meeting', name: 'Meeting', meta: { name: '会议管理' }, component: () => import('../views/manager/Meeting') },
      { path: 'leave', name: 'Leave', meta: { name: '请假管理' }, component: () => import('../views/manager/Leave') },
      { path: 'attendanceRecords', name: 'AttendanceRecords', meta: { name: '考勤管理' }, component: () => import('../views/manager/AttendanceRecords') },
    ]
  },
  {
    path: '/front',
    name: 'Front',
    component: () => import('../views/Front.vue'),
    children: [
      { path: 'home', name: 'Home', meta: { name: '系统首页' }, component: () => import('../views/front/Home') },
      { path: 'person', name: 'Person', meta: { name: '个人信息' }, component: () => import('../views/front/Person') },
    ]
  },
  { path: '/login', name: 'Login', meta: { name: '登录' }, component: () => import('../views/Login.vue') },
  { path: '/register', name: 'Register', meta: { name: '注册' }, component: () => import('../views/Register.vue') },
  { path: '*', name: 'NotFound', meta: { name: '无法访问' }, component: () => import('../views/404.vue') },
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router
